This notebook was written for the AWEAR Case Studies as part of a PhD project on Engineering Systems Design in Healthcare at the Engineering Systems Division, DTU Management, in collaboration with Rigshospitalet-Glostrup.
The purpose of this notebook is to provide regular reports on the data being recorded from study participants, to check that it is being recorded and looks as expected. The R script imports, tests and plots data from a specified participant and timeframe, as shown in the code and output below.
Report subject and period:
This report is for user P13NB for the time period from 2018-05-05 to 2018-06-02
Import and restructure data:
Overview of available csv files and their current use status:
| “activity.csv” |
coded activity types |
in use |
| “battery.csv” |
charging log |
in use |
| “bluetooth.csv” |
- |
not in use |
| “calllog.csv” |
log of phonecalls |
not in use |
| “experience_sampling.csv” |
answers to daily self-reports |
in use |
| “hardware_info.csv” |
- |
not in use |
| “location.csv” |
GPS data from watch and phone |
in use |
| “screen.csv” |
screen on/off transitions (phone) |
in use |
| “sms.csv” |
sms log |
not in use |
| “step_count.csv” |
step counts from watch and phone |
in use |
| “wearable.csv” |
- |
no longer in use |
| “wifi.csv” |
- |
not in use |
The output below confirms which files have been imported, followed by processing steps.
activity file imported
battery file imported
calllog file imported
experience_sampling file imported
location file imported
screen file imported
sms file imported
step_count file imported
***
Processing file containing: activity confidence
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Complete: column 'label' created describing activity based on activity code
Complete: activity data reduced from 13701 to 8488 rows by keeping only the max-confidence activities for each unique timestamp
***
Processing file containing: plugged status level
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Complete: column 'mode' created describing charging status based on 'plugged' variable
***
Processing file containing: name number type duration
User ID is not in dataset, returning NULL
***
Processing file containing: question_id answer
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: lat lon accuracy provider
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: screen_on
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
***
Processing file containing: address body type read
User ID is not in dataset, returning NULL
***
Processing file containing: step_count
Complete: Data extracted for specified user
Complete: Data extracted for period of interest
Complete: funf_version converted to dsource column indicating whether reading is from phone or watch
Quality check: data source
Check whether data coming from watch, phone or both (also gives date of last reading).
Data in activity comes from phone
Last reading in activity is on [1] "2018-05-29 04:12:33 CEST"
Data in battery comes from phone
Last reading in battery is on [1] "2018-05-29 04:12:32 CEST"
Data in experience_sampling comes from phone
Last reading in experience_sampling is on [1] "2018-05-28 18:02:13 CEST"
Data in location comes from phone watch
Last reading in location is on [1] "2018-05-29 04:18:32 CEST"
Data in screen comes from phone
Last reading in screen is on [1] "2018-05-29 03:56:24 CEST"
Data in step_count comes from watch phone
Last reading in step_count is on [1] "2018-05-29 04:12:32 CEST"
LS0tDQp0aXRsZTogJ0FXRUFSIFN0dWRpZXM6IERhdGEgQ2hlY2tlcicNCmF1dGhvcjogJ0p1bGlhIFRob3JwZScNCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQo8IS0tIENvZGUgYmFzZWQgb24gRGF0YUNoZWNrZXJfbWFpbl92Ml8yMDE4MDIyMC5SLiAtLT4NCg0KVGhpcyBub3RlYm9vayB3YXMgd3JpdHRlbiBmb3IgdGhlIEFXRUFSIENhc2UgU3R1ZGllcyBhcyBwYXJ0IG9mIGEgUGhEIHByb2plY3Qgb24gKkVuZ2luZWVyaW5nIFN5c3RlbXMgRGVzaWduIGluIEhlYWx0aGNhcmUqIGF0IHRoZSBFbmdpbmVlcmluZyBTeXN0ZW1zIERpdmlzaW9uLCBEVFUgTWFuYWdlbWVudCwgaW4gY29sbGFib3JhdGlvbiB3aXRoIFJpZ3Nob3NwaXRhbGV0LUdsb3N0cnVwLg0KDQpUaGUgcHVycG9zZSBvZiB0aGlzIG5vdGVib29rIGlzIHRvIHByb3ZpZGUgcmVndWxhciByZXBvcnRzIG9uIHRoZSBkYXRhIGJlaW5nIHJlY29yZGVkIGZyb20gc3R1ZHkgcGFydGljaXBhbnRzLCB0byBjaGVjayB0aGF0IGl0IGlzIGJlaW5nIHJlY29yZGVkIGFuZA0KbG9va3MgYXMgZXhwZWN0ZWQuIFRoZSBSIHNjcmlwdCBpbXBvcnRzLCB0ZXN0cyBhbmQgcGxvdHMgZGF0YSBmcm9tIGEgc3BlY2lmaWVkIHBhcnRpY2lwYW50IGFuZCB0aW1lZnJhbWUsIGFzIHNob3duIGluIHRoZSBjb2RlIGFuZCBvdXRwdXQgYmVsb3cuDQoNCmBgYHtyIFNFVFVQLCBpbmNsdWRlPUZBTFNFfQ0KIyBTZXQgdGhlIGRyaXZlLCBsb2FkIHBhY2thZ2VzIGFuZCBmdW5jdGlvbnMuDQoNCnNldHdkKCJNOi9QaERfRm9sZGVyL0Nhc2VTdHVkaWVzL0RhdGFfYW5hbHlzaXMvc291cmNlIikNCg0KIyBMb2FkIHJlcXVpcmVkIHBhY2thZ2VzOg0KbGlicmFyeShkYXRhLnRhYmxlKQ0KbGlicmFyeShkdHBseXIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShtYWdyaXR0cikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShyZXNoYXBlMikNCmxpYnJhcnkobWFwdG9vbHMpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkobWFwcykNCmxpYnJhcnkobWFwcHJvaikNCmxpYnJhcnkoc3ApDQpsaWJyYXJ5KGNhVG9vbHMpDQoNCiMgTG9hZCBjdXN0b20gZnVuY3Rpb25zOg0Kc291cmNlKCJKUlRfdXRpbHMuUiIpDQoNCiMgRGVmaW5lIGNvbnN0YW50czoNCmZvbGRlciA8LSAiLi4vLi4vRGF0YV9kdW1wcy9kdW1wX2N1cnJlbnRfYW5hbHlzaXMvIiAjIHBhdGggdG8gZm9sZGVyIHRoYXQgaG9sZHMgbXVsdGlwbGUgLmNzdiBmaWxlcywgZG93bmxvYWRlZCBmcm9tIG5pZ2h0aW5nYWxlIHdlYnBvcnRhbA0Kbm90LmluLnVzZSA8LSBjKCJibHVldG9vdGgiLCJoYXJkd2FyZV9pbmZvIiwid2VhcmFibGUiLCJ3aWZpIikNCmFjdGl2aXR5LnNlbGVjdGlvbiA8LSBjKCJTdGlsbCIsICJGb290IiwgIlZlaGljbGUiLCAiVGlsdGluZyIsICJCaWN5Y2xlIikgIyBtYWluIGFjdGl2aXR5IHR5cGVzDQp0b19wbG90IDwtIGMoImFjdGl2aXR5IiwgDQogICAgICAgICAgICAgImJhdHRlcnkiLCANCiAgICAgICAgICAgICAiZXhwcyIsIA0KICAgICAgICAgICAgICJsb2NhdGlvbiIsIA0KICAgICAgICAgICAgICJzY3JlZW4iLCANCiAgICAgICAgICAgICAic3RlcHMiKQ0KdXNlcnMgPC0gbGlzdChqdWxpYSA9ICI5M2E2ZDMxYy1lMjE2LTQ4ZDgtYTlhMi1mMmY3MjM2MjU0OGQiLA0KICAgICAgICAgICAgICBkZWFuID0gImIxMzE2MjgwLTM4YTYtNDVlMS05YmI5LTdhZmIyYTFhMmE5NiIsDQogICAgICAgICAgICAgIGx1bmEgPSAiNGFmZTYxYzUtYzVjYy00ZGU0LThmNTAtOTQ5OTA1NzY2OGFkIiwNCiAgICAgICAgICAgICAgcGVyID0gIjdiZjVmZWMzLWY0NmYtNDE5ZS05NTczLTAwMWZlOWI0N2Q4MSIsDQogICAgICAgICAgICAgIHZlcmVuYSA9ICJhMGM3NGE4OC1iMjkzLTRiMzEtOTJjMC05Njc1MDJiMjgxMzIiLA0KICAgICAgICAgICAgICBhZ3phbSA9ICI1MjE1MmRkYS0wZjU0LTQ2ZDEtYWZmYS02ZGVhODVmODQwZGMiLA0KICAgICAgICAgICAgICBhbmphID0gIjM2ZjlkMDYxLWM1ZTktNGYzMC05MWIyLTgzMzUxZmY0MDI4OCIsDQogICAgICAgICAgICAgICNQMDFGQSA9ICI2MzIxZjdlZi1hOTU4LTQ0YWQtYjhlNS01YWEwNGJjMDA0ZTEiLA0KICAgICAgICAgICAgICBQMDNKSiA9ICJlOWY0NGViNS04OTYyLTQ4OTQtODNjNi03ODMwMjVjNmVhZWEiLA0KICAgICAgICAgICAgICBQMDZTUyA9ICJmOWYyNDgzOC1jODQ0LTQyZDQtODM0My1iMjBlYmRkMjIwZjMiLA0KICAgICAgICAgICAgICBQMDdNRyA9ICI0ZmJmZGRkMC1hMzQ2LTQxYzgtYmU4ZC1mODgwNGI1MDY4ZDMiLA0KICAgICAgICAgICAgICBQMDhVSCA9ICJhODVmMjk5ZS03YTA5LTRiYTctYmMxOS04YTIwMGMyNjg2YzIiLA0KICAgICAgICAgICAgICBQMTBKTCA9ICJkMDVmYTk4NC04ZDNiLTQ0MDUtYjQxNy0yMTFkMWEzZjUwZDYiLA0KICAgICAgICAgICAgICBQMTNOQiA9ICI3NWNjNTI0MC03ODA1LTQ1NTAtYWVhZS04NzNkZjk5ODQ3MTAiKQ0KDQpgYGANCg0KIyMjIFJlcG9ydCBzdWJqZWN0IGFuZCBwZXJpb2Q6DQpgYGB7ciBTZXR0aW5ncywgZWNobz1GQUxTRX0NCg0KIyBTZWxlY3QgdXNlcg0KdXNlcmlkIDwtIHVzZXJzJFAxM05CDQoNCiMgU2V0IHBlcmlvZCBvZiBpbnRlcmVzdA0KZC5zdGFydCA8LSBhcy5QT1NJWGN0KCIyMDE4LTA1LTA1IikgIyB5eXl5LW1tLWRkIA0KZC5zdG9wIDwtIGFzLlBPU0lYY3QoIjIwMTgtMDYtMDIiKQ0KDQpjYXQoIlRoaXMgcmVwb3J0IGlzIGZvciB1c2VyICIsIG5hbWVzKHVzZXJzW3VzZXJzPT11c2VyaWRdKSwgImZvciB0aGUgdGltZSBwZXJpb2QgZnJvbSAiLCBhcy5jaGFyYWN0ZXIoZC5zdGFydCksICIgdG8gIiwgYXMuY2hhcmFjdGVyKGQuc3RvcCkpIA0KDQpgYGANCg0KDQojIyMgSW1wb3J0IGFuZCByZXN0cnVjdHVyZSBkYXRhOg0KT3ZlcnZpZXcgb2YgYXZhaWxhYmxlIGNzdiBmaWxlcyBhbmQgdGhlaXIgY3VycmVudCB1c2Ugc3RhdHVzOg0KDQpGaWxlIHwgRGVzY3JpcHRpb24gfCBTdGF0dXMNCi0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQ0KImFjdGl2aXR5LmNzdiIgfCBjb2RlZCBhY3Rpdml0eSB0eXBlcyB8IGluIHVzZQ0KImJhdHRlcnkuY3N2IiB8IGNoYXJnaW5nIGxvZyB8IGluIHVzZQ0KImJsdWV0b290aC5jc3YiIHwgLSB8IG5vdCBpbiB1c2UNCiJjYWxsbG9nLmNzdiIgfCBsb2cgb2YgcGhvbmVjYWxscyB8IG5vdCBpbiB1c2UNCiJleHBlcmllbmNlX3NhbXBsaW5nLmNzdiIgfCBhbnN3ZXJzIHRvIGRhaWx5IHNlbGYtcmVwb3J0cyB8IGluIHVzZQ0KImhhcmR3YXJlX2luZm8uY3N2IiB8IC0gfCBub3QgaW4gdXNlDQoibG9jYXRpb24uY3N2IiB8IEdQUyBkYXRhIGZyb20gd2F0Y2ggYW5kIHBob25lIHwgaW4gdXNlDQoic2NyZWVuLmNzdiIgfCBzY3JlZW4gb24vb2ZmIHRyYW5zaXRpb25zIChwaG9uZSkgfCBpbiB1c2UNCiJzbXMuY3N2IiB8IHNtcyBsb2cgfCBub3QgaW4gdXNlDQoic3RlcF9jb3VudC5jc3YiIHwgc3RlcCBjb3VudHMgZnJvbSB3YXRjaCBhbmQgcGhvbmUgfCBpbiB1c2UNCiJ3ZWFyYWJsZS5jc3YiIHwgLSB8IG5vIGxvbmdlciBpbiB1c2UNCiJ3aWZpLmNzdiIgIHwgLSB8IG5vdCBpbiB1c2UNCg0KVGhlIG91dHB1dCBiZWxvdyBjb25maXJtcyB3aGljaCBmaWxlcyBoYXZlIGJlZW4gaW1wb3J0ZWQsIGZvbGxvd2VkIGJ5IHByb2Nlc3Npbmcgc3RlcHMuDQoNCg0KYGBge3IgSW1wb3J0LCBlY2hvPUZBTFNFfQ0KZGF0YXNldHMuYWxsIDwtIGdldC5kYXRhKGZvbGRlciwgbm90LmluLnVzZSkgJT4lIA0KICBsYXBwbHkocmVzdHJ1Y3R1cmUsIHVzZXJpZCwgZC5zdGFydCwgZC5zdG9wKQ0KZGF0YXNldHMuYWxsIDwtIEZpbHRlcihmdW5jdGlvbih4KSAhaXMubnVsbCh4KVsxXSxkYXRhc2V0cy5hbGwpICMgcmVtb3ZlIGFueSBudWxsIGRhdGFmcmFtZXMNCg0KI3Rlc3Q8LWZpbHRlcihkYXRhc2V0cy5hbGwkYWN0aXZpdHksIHVzZXI9PSJmOWYyNDgzOC1jODQ0LTQyZDQtODM0My1iMjBlYmRkMjIwZjMiKQ0KDQpgYGANCg0KDQojIyMgUXVhbGl0eSBjaGVjazogZGF0YSBzb3VyY2UNCkNoZWNrIHdoZXRoZXIgZGF0YSBjb21pbmcgZnJvbSB3YXRjaCwgcGhvbmUgb3IgYm90aCAoYWxzbyBnaXZlcyBkYXRlIG9mIGxhc3QgcmVhZGluZykuIA0KDQpgYGB7ciBRQywgZWNobz1GQUxTRX0NCmZvciAoaSBpbiAxOmxlbmd0aChkYXRhc2V0cy5hbGwpKXsNCiAgaiA8LSBkYXRhc2V0cy5hbGxbW2ldXQ0KICBpZighaXMubnVsbChqKSl7DQogICAgY2F0KCJEYXRhIGluICIsbmFtZXMoZGF0YXNldHMuYWxsKVtpXSwiY29tZXMgZnJvbSAiLCBkaXN0aW5jdChqLGRzb3VyY2UpWywxXSwiXG4iKTsNCiAgICBjYXQoIkxhc3QgcmVhZGluZyBpbiIsbmFtZXMoZGF0YXNldHMuYWxsKVtpXSwiaXMgb24iLGNhcHR1cmUub3V0cHV0KG1heChqJHRpbWVzdGFtcCkpLCJcblxuIik7DQogIH0NCn0NCmBgYA0KDQojIyBWaXN1YWxpc2UgZGF0YToNCg0KPCEtLSB0byBkbyAtLT4NCg0KPCEtLSAqIHJlc29sdmUgd2FybmluZ3MgLS0+DQo8IS0tICogY3VzdG9taXNlIGNvbG91cnMgLS0+DQo8IS0tICogYXhlcyB3aXRoIGRhdGVzOiBvcmRlcnMgbm90IGluIHRpbWUsIGphbnVhcnkgYWZ0ZXIgZmViIChvcmRlcmVkIGJ5IGRheSBub3QgdGFraW5nIG1vbnRoIGludG8gYWNjb3VudCkgLS0+DQoNCmBgYHtyIFBsb3RzLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KcmVzdWx0czwtc2hvd19wbG90cyhkYXRhc2V0cy5hbGwsIHRvX3Bsb3QpDQpmb3IoaSBpbiAxOmxlbmd0aChyZXN1bHRzKSl7DQogIHByaW50KHJlc3VsdHNbW2ldXSkNCn0NCg0KYGBgDQoNCg==